////两个数凑数
性质一:几个两两互质的数，最大公约数是1，最小公倍数是他们的乘积。
性质二：两个数a, b。最小公倍数*最大公因数 = a*b
性质三:两个互质的数a和b最大不能表示的数就是(a-1)(b-1)-1，也就是说两个互质的数a，b可以表示(a-1)b-1)之后的所有数字。



////指定输入结束
例如: 输入n行若干数存入数组
int main()
{
    int n, a;
    vector<int> v;
    cin >> n;
    for(int i=1; i<=n; i++)
    {
        while(1)
        {
            cin >> a;
            v.push_back(a);
            if(cin.get() == '\n')   //如果输入的是回车，跳出循环。'\n'也可以改为其他数字
                break;
        }
    }
}




//小蓝准备用256MB的内存空间开一个数组，数组的每个元素都是32位二进制整数，
//如果不考虑程序占用的空间和维护内存需要的辅助空间，请问
//256MB的空间可以存储多少个32位二进制整数?
#include<bits/stdc++.h>
using namespace std;

int main()
{
    //1MB=1024KB
    //1KB=1024B
    //1B=8b;
    //B:byte字节
    //b:bit比特(1位=1比特)
    //32位=4B
    //题解的意思是有多少个32位
    //转化成long long避免数据溢出
	cout << (long long) 256 *1024 *1024 * 8 /32;
	return 0;
}



//int类型整数转化为string类型数字
用to_string()函数


//string 类型数字转化为int类型数字
#include<bits/stdc++.h>
using namespace std;

int getv(string a)
{
	int value = 0;
	for(int i=0; i<a.size(); i++)
	{
		value*=10;
		value+=(a[i]-'0');
	}
	return value;
}

int main()
{
	char a[] = "234";
	string a_ = "123";
	int b = atoi(a);        //此函数变量只能为c语言形式字符串，即char数组
	int c = getv(a_);
	
	cout << b+123 << endl << c << endl;;
	return 0;
}




//平方差
对于整数x， y， z 满足x = y*y - z*z 则 x要么是奇数要么是4的倍数
以上是充分必要条件。
例：给定L,R，问L<=x<=R中有多少个数t满足存在整数y使得x=y*y-z*z
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll L , R;
ll num(ll x)
{
	return x/4 + (x+1)/2;
}
int main()
{
	cin >> L >> R;
	cout << num(R) - num(L-1) << endl;
	return 0;
}




//1-100随机数生成
#include<iostream>
using namespace std;
#include<ctime>

int main()
{
	srand((unsigned)time(NULL));
	int n = rand() % 100 + 1;
	cout << n << endl;

	return 0;
}